// 8位长度
const buffer1 = Buffer.from ('geekbang');
// 4位长度
const buffer2 = Buffer.from([1,2,3,4]);
// 20位长度
const buffer3 = Buffer.alloc(20);
// 写入int8的12，插入在第二位，第二位则从02改为了0c；
console.log(buffer1);
console.log(buffer2);
console.log(buffer3);
buffer2.writeInt8(12,1);
console.log(buffer2);
buffer2.writeInt16LE(512,2);
console.log(buffer2);
// buffer2.writeInt16BE(512,3);
// console.log(buffer2);

// 二进制编码，传递参数

// protocol buffers,类似json数据的，各个语言都可以使用

// npm包 protocol buffers 
// 引入buffers npm 包
const fs = require('fs');
const protobuf = require('protocol-buffers');
const schema = protobuf(fs.readFileSync(__dirname + '/test.proto','utf-8'));
// 编码数据为二进制
const buff = schema.Column.encode({
    id: 1,
    name: 'node',
    price: 80.4
});
console.log(buff);
// float 类型在JS中有精度问题，在此解码数据为原来传递的数据
console.log(schema.Column.decode(buff));
// RPC传递数据则可以对应后台传递Buffer




